In promoting collaborative efforts in a fast-paced environment such as a business enterprise, there is a growing need to bring together, in an automated fashion, the right group of people at the most appropriate time—and often at the spur of the moment. Collaboration is often required to resolve pending issues in a variety of situations—for example, routine situations such as the ordering of items in an inventory and the resolution of claims in an insurance company, life-critical situations such as bringing hospital staff together for an emergency consultation, and time-critical situations such as responding to stock market changes in a brokerage firm. The advantage in being able to connect people in an automated fashion and in response to enterprise events is the reduced delay in making a decision, which leads to greater enterprise productivity.
One challenge in bringing a group of people together is ensuring that the specific roles that are needed in the collaboration are, in fact, represented. For example, the roles in an enterprise's research and development organization might include a researcher, a systems engineer, an architect, a developer, a tester, a project manager, and so forth. What heightens the challenge is that the people performing these roles might not all be at the same location, might be using different kinds of communication media (e.g., voice, instant messaging, etc.) at their various telecommunications endpoints (e.g., telephones, computers, personal digital assistants, etc.), might be in different environments (e.g., office, car, airport, home, etc.), and might already be participating in one or more communication sessions such as telephone calls. Additionally, there might be several people that can perform each role, making it necessary to be able to select a person to perform each given role. In any event, it is necessary to determine the availability of each person for participating in the collaboration, which is often in the form of a new communication session that is to occur via a particular communication medium. In this context, a person's availability is characterized in terms of that person's ability to participate in a specified communication session, via a specified communication medium and at a specified time.
Another challenge in bringing a group of people together, particularly in a global enterprise, is dealing with information that is often non-uniform and incomplete. People must often be brought together quickly to smooth over and fill in the information. Accordingly, the need to be able to compute availability increases as enterprises become more global and complex. And as those enterprises grow and evolve, they need to extend their reach and to increase the resource pool from which to select people (e.g., for contact centers, etc.). Furthermore, those enterprises often need to automate communications as part of their expanding business processes (e.g., supply chain management, emergency management, etc.).
What is needed is a technique to determine the availability of a person for participating in a collaboration or other event, such as in a new or an existing communication session via a telecommunications endpoint, without some of the disadvantages in the prior art.